package comvecspace.data.model.sql;

import java.util.concurrent.ConcurrentHashMap;

import com.vecspace.constant.AppConst;
import com.vecspace.database.model.QuerySQL;

public class SqlCache {
	ConcurrentHashMap<String,Object> map = new ConcurrentHashMap<>(1024);
	private static boolean useCache = true;
	
	public boolean isUseCache() {
		return useCache;
	}
	public void setUseCache(boolean useCache) {
		SqlCache.useCache = useCache;
	}
	/**获取缓存中的文件内容,
	 * 如果处于调试状态，则返回null*/
	public String get(String key){
		if(AppConst.isDebug()) {
			return null;
		}
		String s = (String)map.get(key);
		return s;
	}
	
	/**获取缓存中的文件内容,
	 * 如果处于调试状态，则返回null*/
	public QuerySQL getQuerySQL(String key){
		if(AppConst.isDebug()) {
			return null;
		}
		QuerySQL sql = (QuerySQL)map.get(key);
		return sql;
	}
	
	/**将文件内容放到缓存中
	 * 
	 * 功能描述：
	 * @param key 文件全名（含路径，路径用于区分同名文件）
	 * @param value 文件内容
	 */
	public void put(String key, String value){
		if(!useCache) {
			return;
		}
		map.put(key, value);
	}
	
	public void put(String key, QuerySQL value){
		if(!useCache) {
			return;
		}
		map.put(key, value);
	}
	
	public void clear(){
		map.clear();
	}
	
	private static SqlCache _defaultInstance = new SqlCache();
	public static SqlCache DEFAULT(){
		return _defaultInstance;
	}
}
